package com.bringway.p2p.dao;

import java.util.List;
import java.util.Map;

import net.sf.json.JSONObject;

public interface JkglDao {

	/**根据用户名查询本人借款信息
	 * @param params
	 * @return
	 */
	public List queryJkglHkList(JSONObject params);
	
	/**借款人本人借款数量
	 * @param params
	 * @return
	 */
	public int getJkglHkCount(JSONObject params);

	/**保存借款人还款信息到新表
	 * @param params
	 * @return
	 */
	public boolean saveJkglHk(JSONObject params);
	/**更新借款人账户余额和可用金额
	 * @param params
	 * @return
	 */
	public String saveJkrHkxx(JSONObject params);
	/**更新借款人发放债权的状态
	 * @param params
	 * @return
	 */
	public boolean updateZqzrlbZt(JSONObject params);
	
	public List queryHkmxList(JSONObject params);
	public int getHkmxCount(JSONObject params);
	
	public boolean addZcDetails(JSONObject params) ;
	/**
	 * @param params
	 * @return map
	 */
	public Map<String, Object> isValidJkglHK(String gyh,String id);
	
	boolean isHkBj(JSONObject params);
	/**
	 * @作者 js  
	 * @方法名 listYhkmx  
	 * @功能 TODO 借款人应还款明细 列表
	 * @param params
	 * @return
	 */
	List<Map<String, Object>> listYhkmx(JSONObject params);
	/**
	 * @作者 js  
	 * @方法名 getYhkmxCount  
	 * @功能 TODO 借款人应还款明细 分页总记录数
	 * @param params
	 * @return
	 */
	int getYhkmxCount(JSONObject params);
	/**
	 * @作者 js  
	 * @方法名 updateYhkmx  
	 * @功能 TODO 更新应还款明细表数据
	 * @return
	 */
	int updateYhkmx();
	/**
	 * @作者 js  
	 * @方法名 listMarryHk  
	 * @功能 TODO 获取项目列表
	 * @param params
	 * @return
	 */
	List<Map<String, Object>> listMarryHk(JSONObject params);
	/**
	 * @作者 js  
	 * @方法名 getMarryHkCount  
	 * @功能 TODO 获取项目列表 分页总记录数
	 * @param params
	 * @return
	 */
	int getMarryHkCount(JSONObject params);
	/**
	 * @作者 js  
	 * @方法名 listMarryYhk  
	 * @功能 TODO 获取应还款列表
	 * @param params
	 * @return
	 */
	List<Map<String, Object>> listMarryYhk(JSONObject params);
	/**
	 * @作者 js  
	 * @方法名 listMarryHedHk  
	 * @功能 TODO 获取已还款列表
	 * @param params
	 * @return
	 */
	List<Map<String, Object>> listMarryHedHk(JSONObject params);
	/**
	 * @作者 js  
	 * @方法名 updateYhkInfo  
	 * @功能 TODO 更新应还款记录信息
	 * @param paramMap
	 * @return
	 */
	int updateYhkInfo(Map<String, Object> paramMap);
	/**
	 * @作者 js  
	 * @方法名 updateHedHkInfo  
	 * @功能 TODO 更新已还款记录信息
	 * @param paramMap
	 * @return
	 */
	int updateHedHkInfo(Map<String, Object> paramMap);
	/**
	 * @作者 js  
	 * @方法名 getYhkInfoById  
	 * @功能 TODO 获取应还款信息
	 * @param id
	 * @return
	 */
	Map<String, Object> getYhkInfoById(String id);
	/**
	 * @作者 js  
	 * @方法名 getYqInfo  
	 * @功能 TODO 获取实际还款日期
	 * @param hkid
	 * @return
	 */
	String getYqInfo(String hkid);
	/**
	 * @作者 js  
	 * @方法名 getCompareDays  
	 * @功能 TODO 获取两日期相差天数
	 * @param endDate
	 * @param startDate
	 * @return
	 */
	int getCompareDays(String endDate,String startDate);
	/**
	 * @作者 js  
	 * @方法名 isKyHkgn  
	 * @功能 TODO 判断此功能是否可用
	 * @param xmid
	 * @return
	 */
	int isKyHkgn(String xmid);
	/**
	 * @作者 js  
	 * @方法名 listYhkAndDfInfo  
	 * @功能 TODO 获取应还款垫付管理列表
	 * @param params
	 * @return
	 */
	List<Map<String, Object>> listYhkAndDfInfo(JSONObject params);
	/**
	 * @作者 js  
	 * @方法名 getYhkAndDfCount  
	 * @功能 TODO 获取应还款垫付管理列表 分页 总记录数
	 * @param params
	 * @return
	 */
	int getYhkAndDfCount(JSONObject params);
	/**
	 * @作者 js  
	 * @方法名 getYhkAndDfSum  
	 * @功能 TODO 获取应还款垫付管理列表 合计金额
	 * @param params
	 * @return
	 */
	Map<String, Object> getYhkAndDfSum(JSONObject params);
	/**
	 * @作者 js  
	 * @方法名 getJbxxInfo  
	 * @功能 TODO 获取用户基本信息
	 * @param gyh
	 * @return
	 */
	Map<String, Object> getJbxxInfo(String gyh);
	String insertYhkDf(Map<String, Object> paramMap);
	int updateYhkDf(Map<String, Object> paramMap);
	int updateJbxx(double l_zhye,double l_djje,double l_kyje,String username);
	int insertZcDdtails(Map<String, Object> paramMap);
	String insertHk(Map<String, Object> paramMap);
	int updateXmzt(String xmid);
}
